home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / cmsrc392.zip / BIGOP.MF < prev    next >
Text File  |  1992-03-30  |  17KB  |  387 lines

  1. % This file contains pairs of large operators for math extension fonts.
  2.  
  3. % Each operator has a `{\tt\char`\\textstyle}' form, for math in text,
  4. % and a `{\tt\char`\\displaystyle}' form, for displayed formulas.
  5.  
  6. % Character codes \0106--\0141 are generated.
  7.  
  8. charlist oct"106": oct"107";  % square union signs
  9. charlist oct"110": oct"111";  % contour integral signs
  10. charlist oct"112": oct"113";  % circle-dot operators
  11. charlist oct"114": oct"115";  % circle-plus operators
  12. charlist oct"116": oct"117";  % circle-times operators
  13. charlist oct"120": oct"130";  % summation signs
  14. charlist oct"121": oct"131";  % product signs
  15. charlist oct"122": oct"132";  % integral signs
  16. charlist oct"123": oct"133";  % union signs
  17. charlist oct"124": oct"134";  % intersection signs
  18. charlist oct"125": oct"135";  % multiset union signs
  19. charlist oct"126": oct"136";  % lattice infimum signs
  20. charlist oct"127": oct"137";  % lattice supremum signs
  21. charlist oct"140": oct"141";  % coproduct signs
  22.  
  23. cmchar "\textstyle square set union sign";
  24. beginchar(oct"106",15u#,0,10/6dh#);
  25. adjust_fit(0,0); pickup pencircle scaled stem;
  26. lft x1=hround u; x2=x1; x4=x5=w-x1;
  27. top y1=eps; bot y2=-d; y4=y2; y5=y1;
  28. draw z1---z2---z4---z5;  % stems and bar
  29. labels(1,2,4,5); endchar;
  30.  
  31. cmchar "\displaystyle square set union sign";
  32. beginchar(oct"107",20u#,0,14/6dh#); padded 1/6dh#;
  33. adjust_fit(0,0); pickup pencircle scaled curve;
  34. lft x1=hround u; x2=x1; x4=x5=w-x1;
  35. top y1=eps; bot y2=-d; y4=y2; y5=y1;
  36. draw z1---z2---z4---z5;  % stems and bar
  37. labels(1,2,4,5); endchar;
  38.  
  39. cmchar "\textstyle circle-dot operator";
  40. beginchar(oct"112",20u#,0,10/6dh#);
  41. adjust_fit(0,0); pickup pencircle scaled stem;
  42. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  43. circle_points; draw_circle;  % circle
  44. fill fullcircle scaled(bold+4dw+eps) shifted(.5[z4,z8]);  % dot
  45. labels(1,2,3,4,5,6,7,8); endchar;
  46.  
  47. cmchar "\displaystyle circle-dot operator";
  48. beginchar(oct"113",27.2u#,0,14/6dh#); padded 1/6dh#;
  49. adjust_fit(0,0); pickup pencircle scaled curve;
  50. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  51. circle_points; draw_circle;  % circle
  52. fill fullcircle scaled(bold+6dw+eps) shifted(.5[z4,z8]);  % dot
  53. labels(1,2,3,4,5,6,7,8); endchar;
  54.  
  55. cmchar "\textstyle circle-plus operator";
  56. beginchar(oct"114",20u#,0,10/6dh#);
  57. adjust_fit(0,0); pickup pencircle scaled stem;
  58. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  59. circle_points; draw_circle;  % circle
  60. draw z2--z6; draw z4--z8;  % plus
  61. labels(1,2,3,4,5,6,7,8); endchar;
  62.  
  63. cmchar "\displaystyle circle-plus operator";
  64. beginchar(oct"115",27.2u#,0,14/6dh#); padded 1/6dh#;
  65. adjust_fit(0,0); pickup pencircle scaled curve;
  66. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  67. circle_points; draw_circle;  % circle
  68. draw z2--z6; draw z4--z8;  % plus
  69. labels(1,2,3,4,5,6,7,8); endchar;
  70.  
  71. cmchar "\textstyle circle-times operator";
  72. beginchar(oct"116",20u#,0,10/6dh#);
  73. adjust_fit(0,0); pickup pencircle scaled stem;
  74. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  75. circle_points; draw_circle;  % circle
  76. draw z1--z5; draw z3--z7;  % times
  77. labels(1,2,3,4,5,6,7,8); endchar;
  78.  
  79. cmchar "\displaystyle circle-times operator";
  80. beginchar(oct"117",27.2u#,0,14/6dh#); padded 1/6dh#;
  81. adjust_fit(0,0); pickup pencircle scaled curve;
  82. lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
  83. circle_points; draw_circle;  % circle
  84. draw z1--z5; draw z3--z7;  % times
  85. labels(1,2,3,4,5,6,7,8); endchar;
  86.  
  87. cmchar "\textstyle summation sign";
  88. beginchar(oct"120",19u#,0,10/6dh#);
  89. adjust_fit(0,0); pickup tiny.nib;
  90. numeric top_arm_thickness, bot_arm_thickness;
  91. top_arm_thickness=Vround rule_thickness;
  92. bot_arm_thickness=Vround .9(.5[rule_thickness,curve]);
  93. lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
  94. top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
  95. numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
  96. penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0);
  97. penpos3(alpha1*(curve-tiny),0);
  98. alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l);
  99. penpos4(alpha2*(rule_thickness-tiny),0);
  100. z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
  101. filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle;  % diagonals
  102. pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
  103. top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
  104. arm(5,6,a,.45,17/11u);  % upper arm and beak
  105. pos7(bot_arm_thickness,-90); pos8(hair,0);
  106. bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
  107. arm(7,8,b,.45,17/11u);  % lower arm and beak
  108. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  109.  
  110. cmchar "\displaystyle summation sign";
  111. beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#;
  112. adjust_fit(0,0); pickup tiny.nib;
  113. numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
  114. thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
  115. top_arm_thickness=Vround .9thin_stem;
  116. bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]);
  117. lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
  118. top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
  119. numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
  120. penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0);
  121. penpos3(alpha1*(thick_stem-tiny),0);
  122. alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
  123. penpos4(alpha2*(thin_stem-tiny),0);
  124. z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
  125. filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle;  % diagonals
  126. pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
  127. top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps;
  128. arm(5,6,a,.45,24/11u);  % upper arm and beak
  129. pos7(bot_arm_thickness,-90); pos8(hair,0);
  130. bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps;
  131. arm(7,8,b,.45,24/11u);  % lower arm and beak
  132. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  133.  
  134. cmchar "\textstyle product sign";
  135. beginchar(oct"121",17u#,0,10/6dh#);
  136. adjust_fit(0,0); pickup crisp.nib;
  137. numeric heavy_stem,light_stem;
  138. heavy_stem=hround(bold+dw); light_stem=rule_thickness;
  139. pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
  140. pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
  141. lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
  142. x1=x1'=x2=x2';
  143. top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
  144. y11l-y1'=y2'-y12r=1.2bracket;
  145. filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
  146.  --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
  147. pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
  148. pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
  149. x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
  150. y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
  151. filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
  152.  --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
  153. filldraw stroke z11e--z13e; % bar
  154. penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
  155.  
  156. cmchar "\displaystyle product sign";
  157. beginchar(oct"131",23u#,0,14/6dh#); padded 1/6dh#;
  158. adjust_fit(0,0); pickup crisp.nib;
  159. numeric heavy_stem,light_stem;
  160. heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
  161. pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
  162. pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
  163. lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
  164. x1=x1'=x2=x2';
  165. top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
  166. y11l-y1'=y2'-y12r=1.8bracket;
  167. filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
  168.  --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
  169. pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
  170. pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
  171. x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
  172. y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
  173. filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
  174.  --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
  175. filldraw stroke z11e--z13e; % bar
  176. penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
  177.  
  178. cmchar "\textstyle coproduct sign";
  179. beginchar(oct"140",17u#,0,10/6dh#);
  180. adjust_fit(0,0); pickup crisp.nib;
  181. numeric heavy_stem,light_stem;
  182. heavy_stem=hround(bold+dw); light_stem=rule_thickness;
  183. pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
  184. pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
  185. lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
  186. x1=x1'=x2=x2';
  187. bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
  188. y1'-y11l=y12r-y2'=1.2bracket;
  189. filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
  190.  --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
  191. pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
  192. pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
  193. x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
  194. y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
  195. filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
  196.  --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
  197. filldraw stroke z11e--z13e; % bar
  198. penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
  199.  
  200. cmchar "\displaystyle coproduct sign";
  201. beginchar(oct"141",23u#,0,14/6dh#); padded 1/6dh#;
  202. adjust_fit(0,0); pickup crisp.nib;
  203. numeric heavy_stem,light_stem;
  204. heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
  205. pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
  206. pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
  207. lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
  208. x1=x1'=x2=x2';
  209. bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
  210. y1'-y11l=y12r-y2'=1.8bracket;
  211. filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
  212.  --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
  213. pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
  214. pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
  215. x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
  216. y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
  217. filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
  218.  --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
  219. filldraw stroke z11e--z13e; % bar
  220. penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
  221.  
  222. cmchar "\textstyle integral sign";
  223. beginchar(oct"122",12u#,0,100/54dh#);
  224. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  225. adjust_fit(0,-ic#); pickup fine.nib;
  226. pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
  227. pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
  228. pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
  229. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  230. x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5stem);
  231. top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
  232. y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  233. bulb(3,2,1); bulb(7,8,9);  % bulbs
  234. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  235.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
  236. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  237.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
  238. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  239.  
  240. cmchar "\displaystyle integral sign";
  241. beginchar(oct"132",18u#,0,200/54dh#);
  242. italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
  243. adjust_fit(0,-ic#); pickup fine.nib;
  244. numeric bulb_size, max_size;
  245. bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
  246. pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
  247. pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
  248. pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
  249. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  250. x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5stem);
  251. top y3r=0; bot y7r=-d;
  252. y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
  253. y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  254. bulb(3,2,1); bulb(7,8,9);  % bulbs
  255. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  256.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
  257. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  258.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
  259. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  260.  
  261. cmchar "\textstyle contour integral sign";
  262. beginchar(oct"110",12u#,0,100/54dh#);
  263. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  264. adjust_fit(0,-ic#); pickup fine.nib;
  265. pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
  266. pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
  267. pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
  268. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  269. x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5stem);
  270. top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
  271. y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  272. bulb(3,2,1); bulb(7,8,9);  % bulbs
  273. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  274.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
  275. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  276.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
  277. pickup rule.nib; autorounded;
  278. draw fullcircle scaled .5w shifted z5;  % contour
  279. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  280.  
  281. cmchar "\displaystyle contour integral sign";
  282. beginchar(oct"111",18u#,0,200/54dh#);
  283. italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
  284. adjust_fit(0,-ic#); pickup fine.nib;
  285. numeric bulb_size, max_size;
  286. bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
  287. pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
  288. pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
  289. pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
  290. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  291. x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5stem);
  292. top y3r=0; bot y7r=-d;
  293. y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
  294. y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  295. bulb(3,2,1); bulb(7,8,9);  % bulbs
  296. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  297.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
  298. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  299.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
  300. pickup rule.nib; autorounded;
  301. draw fullcircle scaled .5w shifted z5;  % contour
  302. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  303.  
  304. cmchar "\textstyle set union sign";
  305. beginchar(oct"123",15u#,0,10/6dh#);
  306. adjust_fit(0,0); pickup pencircle scaled stem;
  307. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  308. top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
  309. draw z1---z2...z3...z4---z5;  % stems and cup
  310. labels(1,2,3,4,5); endchar;
  311.  
  312. cmchar "\displaystyle set union sign";
  313. beginchar(oct"133",20u#,0,14/6dh#); padded 1/6dh#;
  314. adjust_fit(0,0); pickup pencircle scaled curve;
  315. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  316. top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
  317. draw z1---z2...z3...z4---z5;  % stems and cup
  318. labels(1,2,3,4,5); endchar;
  319.  
  320. cmchar "\textstyle set intersection sign";
  321. beginchar(oct"124",15u#,0,10/6dh#);
  322. adjust_fit(0,0); pickup pencircle scaled stem;
  323. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  324. top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
  325. draw z1---z2...z3...z4---z5;  % stems and cap
  326. labels(1,2,3,4,5); endchar;
  327.  
  328. cmchar "\displaystyle set intersection sign";
  329. beginchar(oct"134",20u#,0,14/6dh#); padded 1/6dh#;
  330. adjust_fit(0,0); pickup pencircle scaled curve;
  331. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  332. top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
  333. draw z1---z2...z3...z4---z5;  % stems and cap
  334. labels(1,2,3,4,5); endchar;
  335.  
  336. cmchar "\textstyle multiset union sign";
  337. beginchar(oct"125",15u#,0,10/6dh#);
  338. adjust_fit(0,0); pickup pencircle scaled stem;
  339. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  340. top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
  341. draw z1---z2...z3...z4---z5;  % stems and cup
  342. y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3;
  343. .5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7;  % enclosed `$+$'
  344. labels(1,2,3,4,5,6,7,8,9); endchar;
  345.  
  346. cmchar "\displaystyle multiset union sign";
  347. beginchar(oct"135",20u#,0,14/6dh#); padded 1/6dh#;
  348. adjust_fit(0,0); pickup pencircle scaled curve;
  349. lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
  350. top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
  351. draw z1---z2...z3...z4---z5;  % stems and cup
  352. y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3;
  353. .5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7;  % enclosed `$+$'
  354. labels(1,2,3,4,5,6,7,8,9); endchar;
  355.  
  356. cmchar "\textstyle lattice infimum sign";
  357. beginchar(oct"126",15u#,0,10/6dh#);
  358. adjust_fit(0,0); pickup pencircle scaled stem;
  359. lft x1=hround u-eps; x3=w-x3; x5=w-x1;
  360. top y3=0; bot y1=-d-eps; y5=y1;
  361. draw z1--z3--z5;  % diagonals
  362. labels(1,3,5); endchar;
  363.  
  364. cmchar "\displaystyle lattice infimum sign";
  365. beginchar(oct"136",20u#,0,14/6dh#); padded 1/6dh#;
  366. adjust_fit(0,0); pickup pencircle scaled curve;
  367. lft x1=hround u-eps; x3=w-x3; x5=w-x1;
  368. top y3=0; bot y1=-d-eps; y5=y1;
  369. draw z1--z3--z5;  % diagonals
  370. labels(1,3,5); endchar;
  371.  
  372. cmchar "\textstyle lattice supremum sign";
  373. beginchar(oct"127",15u#,0,10/6dh#);
  374. adjust_fit(0,0); pickup pencircle scaled stem;
  375. lft x1=hround u-eps; x3=w-x3; x5=w-x1;
  376. top y1=eps; bot y3=-d; y5=y1;
  377. draw z1--z3--z5;  % diagonals
  378. labels(1,3,5); endchar;
  379.  
  380. cmchar "\displaystyle lattice supremum sign";
  381. beginchar(oct"137",20u#,0,14/6dh#); padded 1/6dh#;
  382. adjust_fit(0,0); pickup pencircle scaled curve;
  383. lft x1=hround u-eps; x3=w-x3; x5=w-x1;
  384. top y1=eps; bot y3=-d; y5=y1;
  385. draw z1--z3--z5;  % diagonals
  386. labels(1,3,5); endchar;
  387.